package sz.szsmk.citizencard.mvp.contract;

import java.util.List;

import sz.szsmk.citizencard.model.network.bean.response.BaseBean;
import sz.szsmk.citizencard.model.network.bean.response.IbaseBean;
import sz.szsmk.citizencard.model.network.dzbean.req.PreAuthThirdRes;
import sz.szsmk.citizencard.model.network.dzbean.res.GetBankNameRes;
import sz.szsmk.citizencard.model.network.dzbean.res.SupportBankResponse;
import sz.szsmk.citizencard.ui.base.IBaseContact;

/**
 * Copyright (c)2018
 * author: zdh
 * created on: 2018/5/22 15:42
 * description:
 */
public interface IBindCashCardContact {

    interface IBindCashCardPresenter<T extends IBaseContact.IBaseView>
            extends IBaseContact.IBasePresenter {
        void getSupportBankList(String id, String openId, String channelId);

        void dzsmkAgreement(String openId, String channelId);

        void preAuthThird(String id, String openId, String mobile, String channelId);

        void getBankName(String no, String channelId, String cardNo,String token);

        void checkBankNoValidation(String cardNo, String channelId, String openId, String token,String selectBankCode);
    }

    interface IBindCashCardView extends IBaseContact.IBaseView {

        void getSupportBankListFail();

        void getSupportBankListSucc(List<SupportBankResponse.DataBean> data);

        void dzsmkAgreementFail(IbaseBean response);

        void dzsmkAgreementSucc(String channelId);

        void preAuthThirdFail();

        void preAuthThirdSucc(PreAuthThirdRes preAuthRes);

        void getBankNameFail(GetBankNameRes getBankNameRes);

        void getBankNameSucc(GetBankNameRes getBankNameRes);

        void checkBankNoValidationFail(String msg);
    }


}
